package com.zyp.jobseeker.service;

import com.zyp.jobseeker.entity.Application;
import com.zyp.jobseeker.entity.Interview;
import com.github.pagehelper.PageInfo;
import java.util.Map;

/**
 * 求职申请服务接口
 */
public interface ApplicationService {
    /**
     * 提交求职申请
     * @param application 应用信息
     * @return 应用ID
     */
    Long submitApplication(Application application);

    /**
     * 查询企业收到的求职申请
     * @param enterpriseId 企业ID
     * @param status 申请状态
     * @param page 页码
     * @param size 每页数量
     * @return 分页结果
     */
    PageInfo<Map<String, Object>> getApplicationsByEnterprise(
            Long enterpriseId, Integer status, int page, int size);

    /**
     * 拒绝求职申请
     * @param id 申请ID
     * @return 操作结果
     */
    boolean rejectApplication(Long id);

    /**
     * 接受求职申请并生成面试邀请
     * @param id 申请ID
     * @param interview 面试邀请信息
     * @return 面试邀请结果
     */
    Map<String, Object> acceptApplication(Long id, Interview interview);

    /**
     * 查询学生自己的求职申请
     * @param studentId 学生ID
     * @param status 申请状态
     * @param page 页码
     * @param size 每页数量
     * @return 分页结果
     */
    PageInfo<Map<String, Object>> getApplicationsByStudent(
            Long studentId, Integer status, int page, int size);
}